import PagesPlugin from './components/pages2.vue'

export default {
  install(Vue) {
    // 生成一个Vue的子类
    const PagesConstructor = Vue.extend(PagesPlugin)
    const instance = new PagesConstructor();

    /**  通过Vue的原型注册一个方法，让所有实例共享这个方法
     * 
     *   callback: 组件回调
     *   bindElementId： 分页组件要绑定的位置 (targe id标记)
     *   initPageCount: 初始化数据总条数
     *   initPageSize： 初始化每页显示条数
     *   pageType：     分页类型，默认为1
     *   sizeArray：    每页显示条数类型
     */
    Vue.prototype.$initPages = (callback, bindElementId, initPageCount, initPageSize, pageType, sizeArray) => {
      if(!bindElementId || !callback) {
        console.log("please set callback & bindElementId by params!!")
        return false
      }
      
      instance.sizeArray = sizeArray;
      // 总条数
      instance.pageCount=initPageCount;
      // 每页显示条数
      instance.pageSize=initPageSize;
      /**
      *  展示交互视图类型
      *  1： 显示行数： 10， 20， 30，.... 上一页  共x页  第x页 转到第 x 页  下一页 
      *  2： 
      */
     instance.pageType=pageType;
      instance.pagesCB = callback;
      instance.$mount(`#${bindElementId}`)
    }

    // 这里不适合使用Vue.mini 模式。 分页功能只在需要的页面或场景中才会使用。 
    // 使用mini 则默认行为/钩子下都会初始化 性能上不太友好
  }
}